NFA
#incomplete